#include<bits/stdc++.h>
using namespace std;
struct node{
	double w;
	double v;
	double c;
}f[10001];
bool cmp(node a,node b)
{
	return a.c>b.c;
}
int main()
{
	int n,m,t;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>f[i].w;
	}
	for(int i=0;i<n;i++){
		cin>>f[i].v;
		f[i].c=f[i].v/f[i].w;
	}
	sort(f,f+n,cmp);
	double ans=0;
	for(int i=0;i<n;i++){
		if(m>f[i].w){
			m-=f[i].w;
			ans+=f[i].v;
		}
		else{
			ans+=m*f[i].c;
			break;
		}
	}
	printf("%.2lf\n",ans);
	return 0;
}

